INCLUDE = -I./lib/SDL/include/SDL/ -I./headers/ -I./headers/SDL/ -I./lib/SDL/include/
LIB = -L./lib/ -L/usr/local/lib -L./lib/SDL/lib -L../lib/SDL/lib -L/usr/lib/i386-linux-gnu/ -L$(DIRSDL)/lib -L./lib/ -L./lib/SDL/lib
LIBSRC = ./lib/src/
LIBS = -lstruct_chainees -lm -lSDL_phelma -lSDL -lSDL_draw 

FT0 = main_graphique_elite
FT1 = main_graphique
FT2 = file_path
FT3 = voisins
FT4 = creation_graphe
FT5 = init_fourmis
FT6 = choix_ville
FT7 = evaporation
FT7b = evaporation_elite
FT8 = main
FT9 = affichage_graphique

all :		$(FT0) $(FT1) $(FT2) $(FT3) $(FT4) $(FT5) $(FT6) $(FT7) $(FT8) $(FT0) oclean


$(FT0) :	$(FT0).o $(FT2).o $(FT3).o $(FT4).o $(FT5).o $(FT6).o $(FT7b).o $(FT9).o
	gcc -o ./bin/TSP_solver_graphique_elite ./bin/$(FT9).o ./bin/$(FT7b).o ./bin/$(FT6).o ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./bin/$(FT0).o $(LIB) $(LIBS) $(INCLUDE) -W -Wall -Werror -std=c89
$(FT0).o :	./src/$(FT0).c ./headers/$(FT0).h
	gcc -c -g ./src/$(FT0).c -o ./bin/$(FT0).o $(INCLUDE) -W -Wall -Werror -std=c89
	

$(FT1) :	$(FT1).o $(FT2).o $(FT3).o $(FT4).o $(FT5).o $(FT6).o $(FT7).o $(FT9).o
	gcc -o ./bin/TSP_solver_graphique ./bin/$(FT9).o ./bin/$(FT7).o ./bin/$(FT6).o ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./bin/$(FT1).o $(LIB) $(LIBS) $(INCLUDE) -W -Wall -Werror -std=c89
$(FT1).o :	./src/$(FT1).c ./headers/$(FT8).h
	gcc -c -g ./src/$(FT1).c -o ./bin/$(FT1).o $(INCLUDE) -W -Wall -Werror -std=c89
		
		
$(FT2).o :	./src/$(FT2).c ./headers/$(FT2).h
	gcc -c -g ./src/$(FT2).c -o ./bin/$(FT2).o $(INCLUDE) -W -Wall -Werror -std=c89
$(FT2) :	$(FT2).o ./tests/test_$(FT2).c
	gcc -o ./bin/test_$(FT2) ./bin/$(FT2).o ./tests/test_$(FT2).c -W -Wall -Werror -std=c89
	
	
$(FT3).o :	./src/$(FT3).c ./headers/$(FT3).h
	gcc -c -g ./src/$(FT3).c -o ./bin/$(FT3).o $(INCLUDE) -W -Wall -Werror -std=c89
$(FT3) :	$(FT3).o $(FT4).o $(FT2).o ./tests/test_$(FT3).c
	gcc -o ./bin/test_$(FT3) ./bin/$(FT2).o ./bin/$(FT3).o ./bin/$(FT4).o ./tests/test_$(FT3).c $(LIB) $(LIBS) $(INCLUDE) -W -Wall -Werror -std=c89
	
	
$(FT4).o :	./src/$(FT4).c ./headers/$(FT4).h
	gcc -c -g ./src/$(FT4).c -o ./bin/$(FT4).o $(INCLUDE) -W -Wall -Werror -std=c89
$(FT4) :	$(FT4).o $(FT3).o $(FT2).o ./tests/test_$(FT4).c
	gcc -o ./bin/test_$(FT4) ./bin/$(FT2).o ./bin/$(FT3).o ./bin/$(FT4).o ./tests/test_$(FT4).c $(LIB) $(LIBS) $(INCLUDE) -std=c89
	
	
$(FT5).o :	./src/$(FT5).c ./headers/$(FT5).h
	gcc -c -g ./src/$(FT5).c -o ./bin/$(FT5).o $(INCLUDE) -W -Wall -Werror -std=c89
$(FT5) :	$(FT5).o $(FT4).o $(FT3).o $(FT2).o ./tests/test_$(FT3).c
	gcc -o ./bin/test_$(FT5) ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./tests/test_$(FT5).c $(LIB) $(LIBS) $(INCLUDE) -W -Wall -Werror -std=c89


$(FT6).o :	./src/$(FT6).c ./headers/$(FT6).h
	gcc -c -g ./src/$(FT6).c -o ./bin/$(FT6).o $(INCLUDE) -std=c89
$(FT6) :	$(FT6).o $(FT5).o $(FT4).o $(FT3).o $(FT2).o ./tests/test_$(FT6).c
	gcc -o ./bin/test_$(FT6) ./bin/$(FT6).o ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./tests/test_$(FT6).c $(LIB) $(LIBS) $(INCLUDE) -std=c89

	
$(FT7).o :	./src/$(FT7).c ./headers/$(FT7).h
	gcc -c -g ./src/$(FT7).c -o ./bin/$(FT7).o $(INCLUDE) -W -Wall -Werror -std=c89
$(FT7) :	$(FT7).o $(FT6).o $(FT5).o $(FT4).o $(FT3).o $(FT2).o ./tests/test_$(FT7).c
	gcc -o ./bin/test_$(FT7) ./bin/$(FT7).o ./bin/$(FT6).o ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./tests/test_$(FT7).c $(LIB) $(LIBS) $(INCLUDE) -std=c89


$(FT7b).o :	./src/$(FT7b).c ./headers/$(FT7b).h
	gcc -c -g ./src/$(FT7b).c -o ./bin/$(FT7b).o $(INCLUDE) -W -Wall -Werror -std=c89


$(FT8) :	$(FT8).o $(FT2).o $(FT3).o $(FT4).o $(FT5).o $(FT6).o $(FT7).o
	gcc -o ./bin/TSP_solver ./bin/$(FT7).o ./bin/$(FT6).o ./bin/$(FT5).o ./bin/$(FT4).o ./bin/$(FT3).o ./bin/$(FT2).o ./bin/$(FT8).o $(LIB) $(LIBS) $(INCLUDE) -W -Wall -Werror -std=c89
$(FT8).o :	./src/$(FT8).c ./headers/$(FT8).h
	gcc -c ./src/$(FT8).c -o ./bin/$(FT8).o $(INCLUDE) -W -Wall -Werror -std=c89
	
	
$(FT9).o :	./src/$(FT9).c ./headers/$(FT9).h
	gcc -c -g ./src/$(FT9).c -o ./bin/$(FT9).o $(INCLUDE) -W -Wall -Werror -std=c89
	
l :		$(LIBSRC)liste.c $(LIBSRC)file.c $(LIBSRC)pile.c
	rm -f ./lib/libSDL_phelma.a ./lib/libstruct_chainees.a ./lib/libSDL_draw.a
	gcc -c $(LIBSRC)liste.c $(LIBSRC)file.c $(LIBSRC)pile.c $(LIBSRC)SDL_phelma.c $(INCLUDE) -W -Wall -Werror -std=c89
	ar rc ./lib/libstruct_chainees.a liste.o file.o pile.o
	ranlib ./lib/libstruct_chainees.a
	ar rc ./lib/libSDL_phelma.a SDL_phelma.o
	ranlib ./lib/libSDL_phelma.a
	rm liste.o file.o pile.o
	

fclean :	bclean tclean
	
tclean :	tclean_src tclean_bin tclean_docs tclean_headers tclean_lib tclean_tests
	rm ./*~ -f

tclean_src :
	rm ./src/*~ -f
	
tclean_bin :
	rm ./bin/*~ -f
	
tclean_docs :
	rm ./docs/*~ -f
	
tclean_headers :
	rm ./headers/*~ -f
	
tclean_lib :
	rm ./lib/*~ -f
	
tclean_tests :
	rm ./tests/*~ -f
	
oclean :
	rm ./bin/*.o -f
	rm ./*.o -f

bclean :
	rm ./bin/* -f



#regle_a :	dependence1 dependence2 (liste de règles à executer avant d'executer regle_a)
#	commandes à éxécuter (définitions de la règle)
#	@commande : n'affiche pas la commande dans le terminal avant de l'executer
	
	
#définition de variables :

#VARIABLE_TEXT = "valeur de la variable" 
#VARIABLE_NB = 42

#utilisation de variable :

#afficher :
#	echo $(VARIABLE_TEXT)


#Makefile Type :

# NAME = prog
# SRC = source.c

# all : $(NAME)

#$(NAME) :
#	gcc -o $(NAME) $(SRC)

#clean :
#	rm -f ./bin/*.o

#fclean :
#	rm -f ./bin/$(NAME)

#re : fclean all
#
#
#
#
#
#
#
#
#
#
#

